package com.liaoye.test;

/**
 * 判断101-200之间有多少个素数，并输出所有素数
 * <p>
 * 素数是 只有被他本身 和 1 能整除的数 不能被2 整除
 * 条件是： 101 ~ 200直接
 * 想法是一个数怎么计算是素数
 * 可以这样计算比如说我们 从他开始一直迭代计算 如果存在一个数除本身之外的求余为0 那么这个数就是素数
 * 判断素数的方法：用一个数分别去除2到sqrt(这个数)
 */
public class Program2 {
    public static void main(String[] args) {
        int m = 101;
        int n = 200;
        int count = 0;
        //统计素数个数
        for (int i = m; i < n; i++) {
            if (isPrime(i)) {
                count++;
                System.out.print(i + " ");
                if (count % 10 == 0) {
                    System.out.println();
                }
            }
        }
        System.out.println();
        System.out.println("在" + m + "和" + n + "之间共有" + count + "个素数");
    }

    public static boolean isPrime(int n) {
        boolean flag = true;
        if (n == 1) {
            flag = false;
        } else {
            for (int i = 2; i <= Math.sqrt(n); i++) {
                if (n % i == 0 || n == 1) {
                    flag = false;
                    break;
                } else {
                    flag = true;
                }
            }
        }
        return flag;
    }

}
